/**
 * 
 */
package com.security.common.code.model;

import org.apache.commons.lang.StringUtils;

/**
 * @author zhailiang
 *
 */
public enum ValidateCodeType {
	
	/**
	 * 短信验证码
	 */
	SMS {
		@Override
		public String getParamNameOnValidate() {
			return SecurityConstants.DEFAULT_PARAMETER_NAME_CODE_SMS;
		}
	},
	/**
	 * 图片验证码
	 */
	IMAGE {
		@Override
		public String getParamNameOnValidate() {
			return SecurityConstants.DEFAULT_PARAMETER_NAME_CODE_IMAGE;
		}
	};

	/**
	 * 校验时从请求中获取的参数的名字
	 * @return
	 */
	public abstract String getParamNameOnValidate();

	public static void main(String[] args) {

		String type = StringUtils.substringBefore("SmsCodeProcessor", "CodeProcessor");

		System.out.println(type);

		ValidateCodeType validateCodeType = ValidateCodeType.valueOf(type.toUpperCase());

		System.out.println(validateCodeType.toString().toLowerCase());

		System.out.println(validateCodeType.getParamNameOnValidate());

	}
}
